<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>行政班级</title>
		<meta name="renderer" content="webkit">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
		<link rel="stylesheet" href="/css/font.css">
		<link rel="stylesheet" href="/css/xadmin.css">
		<link rel="stylesheet" href="/css/myCustom.css">
	</head>

	<body>
		<div class="x-nav">
			<span class="layui-breadcrumb">
                <a href="#">班级管理</a>
                <a>
                    <cite>行政班级</cite></a>
            </span>
			<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);"
			 title="刷新">
				<i class="layui-icon" style="line-height:30px">ဂ</i></a>
		</div>

		<div class="x-body" id="app">
			<div class="layui-row layui-col-space15">
				<div class="layui-col-md3">
					<div class="layui-card">
						<xblock>
							专业列表
						</xblock>
						<ul id="majorTree">
						  <li><a href="javascript:;" class="allMajor"><i class="layui-icon layui-tree-leaf"></i><cite>全部</cite></a></li>
						</ul>
					</div>
				</div>
				<div class="layui-col-md9">
					<xblock>
							<button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
							<button class="layui-btn" onclick="open_addClss()"><i class="layui-icon"></i>添加</button>
							<span class="x-right" style="line-height:40px">共有数据：{{ pageInfo.total }} 条，当前{{ pageInfo.pageNum }} / {{ pageInfo.pages }}页</span>
							<form id="import_excel_form" enctype="multipart/form-data">
								<input type="file" hidden="hidden" name="excelFile" id="importInput" onchange="import_excel(this)" accept=".xlsx"/>
							</form>
					</xblock>
					<table class="layui-table">
						<thead>
                            <tr>
                                <th width="20">
                                    <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon">&#xe605;</i></div>
                                </th>
                                <th>班级名称</th>
                                <th width="60">班级人数</th>
                                <th width="100">所属专业</th>
                                <th width="250">操作</th>
                        </thead>
                        <tbody>
                            <tr v-for="schClass in schClasss">
                                <td>
                                    <div class="layui-unselect layui-form-checkbox" lay-skin="primary" :data-id='schClass.id' :data-className="schClass.className" :data-sort="schClass.sort"><i class="layui-icon">&#xe605;</i></div>
                                </td>
                                <td>{{ schClass.className }}</td>
                                <td>{{ schClass.stuNumber }}</td>
                                <template v-for="schMajor in schMajors">
                                <td v-if="schMajor.majorNo == schClass.majorNo">{{ schMajor.majorName }}</td>
                                </template>
                                <td class="td-manage">
                                    <button class="layui-btn layui-btn layui-btn-sm" onclick="open_editSchClass(this)"><i class="layui-icon">&#xe642;</i>编辑</button>
                                    <button class="layui-btn layui-btn layui-btn-sm" v-on:click="open_classManager(schClass.className,schClass.majorNo, schClass.id)"><i class="layui-icon">&#xe770;</i>班级管理</button>
                                    <button class="layui-btn-danger layui-btn layui-btn-sm" onclick="member_del(this,'要删除的id')" href="javascript:;"><i
                                         class="layui-icon">&#xe640;</i>删除</button>
                                </td>
                            </tr>
                        </tbody>
					</table>
					<div class="page" style="margin-top: 10px !important;">
				        <div>
				          <a class="prev pageTxt" href="javascript:void(0)">上一页</a>
				          <a class="first pageTxt" href="javascript:void(0)">首页</a>
				          <template v-for="pageNum in pageInfo.navigatepageNums">
				              <a class="num" href="javascript:void(0)" v-if="pageInfo.pageNum != pageNum" :data="pageNum">{{ pageNum }}</a>
				              <span class="current" v-else :data="pageNum">{{ pageNum }}</span>
				          </template>
				          <a class="last pageTxt" href="javascript:void(0)">尾页</a>
				          <a class="next pageTxt" href="javascript:void(0)">下一页</a>
				        </div>
				      </div>
				</div>
			</div>
		</div>
		
		<script type="text/javascript" src="/js/jquery.min.js"></script>
	    <script type="text/javascript" src="/js/xadmin.js"></script>
	    <script type="text/javascript" src="/lib/layui/layui.js" charset="utf-8"></script>
	    <script type="text/javascript" src="/js/vue.min.js"></script>
	    <script type="text/javascript" src="/js/jquery.form.js"></script>
		<script>
			var vm = new Vue({
	            el : '#app',
	            data : {
	            	// 所有的专业列表
	                schMajors : "",
	                pageInfo:"",
	                // 一页的班级列表
	                schClasss:"",
	                // 当前选中的专业代码
	                majorNo:"0"
	            },
	            created : function() {
	                // 获取学校专业列表（一级节点为院系，二级为专业）
	                this.listMajorWithTree();
	                // 获取班级列表(0:全部)
	                this.listSchClass("0", 1);
	            },
	            methods : {
	            	listMajorWithTree : function() {
	                    var vm = this;
	                    $.ajax({
	                        url : "/sys/class/as/schOrgWithMajorTree",
	                        type : "get",
	                        success : function(result) {
	                            if (result.state) {
	                            	var data = result.data;
	                                var majorTree = JSON.parse(data.listSchOrgWithMajorTree);
	                                vm.schMajors = data.listSchMajor;
	                                // 加载tree数据(放在其它地方会容易导致加载不出来tree数据)
	                                layui.use('tree', function() {
	                                    layui.tree({
	                                        elem: '#majorTree', //传入元素选择器
	                                        nodes: majorTree,
	                                        click: function(node) {
	                                            // node即为当前点击的节点数据
	                                            // 如果选中的是院系
	                                            if (node.majorNo == "0") {
	                                            	return;
	                                            }
	                                            // 如果不是重复点击
	                                        	if (vm.majorNo != node.majorNo) {
		                                        	vm.majorNo = node.majorNo;
		                                        	vm.listSchClass(vm.majorNo, 1);
	                                        	}
	                                        }
	                                    });
	                                });
	                            } else {
	                                layui.use(['layer'], function(){
	                                	var layer = layui.layer
		                                layer.msg(""+result.msg, {icon: 5});
                                	});
	                            }
	                        }
	                    });
	                },
	                listSchClass : function(majorNo, pageNum) {
	                	var vm = this;
                        $.ajax({
                            url : "/sys/class/as/listSchClass",
                            data:{
                            	majorNo:majorNo,
                            	pageNum:pageNum
                            },
                            type : "get",
                            success : function(result) {
                                if (result.state) {
                                	vm.pageInfo = result.data;
                                	vm.schClasss = result.data.list;
                                } else {
                                	layui.use(['layer'], function(){
                                        var layer = layui.layer
                                        layer.msg(""+result.msg, {icon: 5});
                                    });
                                }
                            }
                        });
	                }
	            }
	        });
			$(function() {
				// 首次加载tree数据时,默认选中"全部"
				$("#majorTree li:first").addClass("selectColor");
			})

			// 对选中的当前树节点加背景颜色
			$("body").on("mousedown", ".layui-tree li a", function() {
				if ($(this).hasClass("allMajor")) {
					$(".layui-tree li, li a").removeClass("selectColor");
					// 如果是“全部”，单独处理
					$(this).parent("li").addClass("selectColor");
					if (vm.majorNo != "0") {
						// 获取全部的班级
						vm.listSchClass("0", 1);
						vm.majorNo = "0";
					}
				} else {
					// 所选节点有children代表该节点为院系，不是专业
					var hasChildren = $(this).parent("li").find("ul").length != 0;
					if (!hasChildren) {
						$(".layui-tree li, li a").removeClass("selectColor");
						$(this).addClass("selectColor");
					}
				}
			})

			// 点击页码数，进行跳转
	        $(".page").delegate(".num", "click", function() {
	            var pageNum = $(this).attr("data");
                vm.listSchClass(vm.majorNo, pageNum);
	        });
	        // 上一页
	        $(".page").delegate(".prev", "click", function() {
	            if (vm.pageInfo.hasPreviousPage) {
	            	vm.listSchClass(vm.majorNo, vm.pageInfo.pageNum - 1);
	            }
	        });
	        // 下一页
	        $(".page").delegate(".next", "click", function() {
	            if (vm.pageInfo.hasNextPage) {
	            	vm.listSchClass(vm.majorNo, vm.pageInfo.pageNum + 1);
	            }
	        });
	        // 首页
	        $(".page").delegate(".first", "click", function() {
	            if (!vm.pageInfo.isFirstPage) {
	            	vm.listSchClass(vm.majorNo, 1);
	            }
	        });
	        // 尾页
	        $(".page").delegate(".last", "click", function() {
	            if (!vm.pageInfo.isLastPage) {
	            	vm.listSchClass(vm.majorNo, vm.pageInfo.pages);
	            }
	        });
			
	        // 添加班级
            function open_addClss() {
            	if (vm.majorNo == "0") {
                    layer.msg('请在左侧‘专业列表’选择一个专业', {icon: 5});
                    return;
                }
                layer.open({
                    type: 1, //Page层类型
                    btn: ["确定", "取消"],
                    title: '添加班级',
                    skin: 'layui-layer-prompt',
                    content: "<input type='text' class='layui-layer-input' placeholder='班级名称，2-15个字符'> ",
                    yes: function(index, layero) {
                        // 按钮【按钮一】的回调
                        var className = $(layero).find("input[type='text']:eq(0)").val();
                        var sort = $(layero).find("input[type='number']").val();
                        // 数据检验
                        var reg_className = /^[\S]{2,15}$/;
                        if (!reg_className.test(className)) {
                            layer.msg('班级名称2-15个字符，且不能出现空格', {
                                icon: 5,
                                time: 1000
                            });
                            return;
                        } else if (sort < 1 || sort > 99999) {
                            layer.msg('排序号，1-5位数字', {
                                icon: 5,
                                time: 1000
                            });
                            return;
                        }
                        // 保存
                        $.ajax({
                            url: "/sys/class/as/saveSchClass",
                            data: {
                            	className: className,
                            	sort: sort,
                                majorNo: vm.majorNo
                            },
                            type: "post",
                            success: function(result) {
                                if (result.state) {
                                    layer.msg("添加成功", {
                                        icon: 1
                                    });
                                    vm.listSchClass(vm.majorNo, 1);
                                    // 关闭
                                    layer.close(index);
                                } else {
                                    layer.msg("" + result.msg, {
                                        icon: 5
                                    });
                                }
                            }
                        });
                    }
                })
            }
	        
	        // 打开编辑院班级的子页面
	        function open_editSchClass(obj) {
	        	var className = $(obj).parents("tr").find("div:first").attr("data-className");
	        	var sort = $(obj).parents("tr").find("div:first").attr("data-sort");
                var classId = $(obj).parents("tr").find("div:first").attr("data-id");
                layer.open({
                    type: 1 ,//Page层类型
                    btn: ["确定", "取消"],
                    title: '编辑专业',
                    skin: 'layui-layer-prompt',
                    content: "<input type='text' class='layui-layer-input' value='"+className+"' placeholder='班级名称，2-15个字符'>",
                    yes: function(index, layero) {
                        // 按钮【按钮一】的回调
                         var className = $(layero).find("input[type='text']:eq(0)").val();
                        var sort = $(layero).find("input[type='number']").val();
                        // 数据检验
                        var reg_className = /^[\S]{2,15}$/;
                        if (!reg_className.test(className)) {
                            layer.msg('班级名称2-15个字符，且不能出现空格', {
                                icon: 5,
                                time: 1000
                            });
                            return;
                        } else if (sort < 1 || sort > 99999) {
                            layer.msg('排序号，1-5位数字', {
                                icon: 5,
                                time: 1000
                            });
                            return;
                        }
                        // 修改
                        $.ajax({
                            url : "/sys/class/as/updateSchClass",
                            data:{
                            	className: className,
                                sort: sort,
                                id: classId
                            },
                            type : "post",
                            success : function(result) {
                                if (result.state) {
                                    layer.msg("修改成功", {icon: 1});
                                    vm.listSchClass(vm.majorNo, vm.pageInfo.pageNum);
                                    // 关闭
                                    layer.close(index);
                                } else {
                                    layer.msg(""+result.msg, {icon: 5});
                                }
                            }
                        });
                    }
                })
	        }
		
			/*单个删除*/
			function member_del(obj) {
				var className = $(obj).parents("tr").find("div:first").attr("data-className");
	            var id = $(obj).parents("tr").find("div:first").attr("data-id");
	            var classId = [];
	            classId.push(id);
				layer.confirm('确认要删除【'+className+'】吗？', function(index) {
					 $.ajax({
		                  url : "/sys/class/as/delSchClass",
		                  type : "post",
		                  data : {
		                	  classId: classId
		                  },
		                  success : function(result) {
		                      if (result.state) {
		                          layer.msg('删除成功!',{icon:1,time:1000});
		                          // 根据当前页面数据量决定加载前一页还是当前页
		                          if (vm.pageInfo.size - 1 == 0 && vm.pageInfo.pageNum != 1) {
	                                  vm.listSchClass(vm.majorNo, vm.pageInfo.pageNum - 1);
		                          } else {
		                        	  vm.listSchClass(vm.majorNo, vm.pageInfo.pageNum);
		                          }
		                      } else {
		                          layer.msg(""+result.msg, {icon: 5});
		                      }
		                  }
		              });
				});
			}

			// 批量删除
			function delAll(argument) {
				var classId = tableCheck.getData();
	            if (classId.length <= 0) {
	                return;
	            }
	            // 获取选中的班级名称
	            var obj = $(".layui-form-checked").not('.header');
	            var className=[];
	            obj.each(function(index, el) {
	            	className.push(obj.eq(index).attr('data-className'));
	            });
				layer.confirm('确认要删除【'+className+'】吗？', function(index) {
					$.ajax({
	                    url : "/sys/class/as/delSchClass",
	                    type : "post",
	                    data : {
	                    	classId: classId
	                    },
	                    success : function(result) {
	                        if (result.state) {
	                            layer.msg('删除成功', {icon: 1});
	                            // 移除所有checkbox的勾选状态
                           		$(".layui-form-checkbox").removeClass('layui-form-checked');
	                            
                           	    // 根据当前页面数据量决定加载前一页还是当前页
                                if (vm.pageInfo.size - classId.length == 0 && vm.pageInfo.pageNum != 1) {
                                    vm.listSchClass(vm.majorNo, vm.pageInfo.pageNum - 1);
                                } else {
                                    vm.listSchClass(vm.majorNo, vm.pageInfo.pageNum);
                                }
	                        } else {
	                            layer.msg(""+result.msg, {icon: 5});
	                        }
	                    }
	                });
				});
			}
			
			// 打开班级管理页面
			function open_classManager(className, majorNo, classId) {
				x_admin_show('班级管理['+className+']','/sys/class/as/toAsClassManager?majorNo=' + majorNo + "&classId=" + classId, 600, 430);
			}
			
			

			// 触发input文件上传
			function open_inputFile() {
				$("#importInput").click();
			}
			// 导入数据(excel格式)
			function import_excel(obj) {
				var file = $(obj).val();
				// 当所选文件不为空时
				if (file.length != 0) {
					$("#import_excel_form").ajaxSubmit({
							type:'post',
							url:'/sys/class/as/importSchClass',
							success:function(result){
								if (result.state) {
	                                layer.msg("导入数据成功", {icon: 1},function(){
		                                // 刷新页面
	                                	location.reload();
	                                });
	                            } else {
	                                layer.msg(""+result.msg, {icon: 5});
	                            }
								// 重置input中的文件
								document.getElementById("import_excel_form").reset();
							}
					});
				}
			}
			
		</script>
	</body>

</html>
